Field
The disclosed embodiments generally relate to power-management techniques for computing devices. More specifically, the disclosed embodiments relate to a technique for dynamically controlling power in a computing device based on empirically determined work-loop deadlines.
Related Art
In order to optimize battery life, a portable computing system often reduces power consumption when the system is idle. This is typically done by powering down system modules or reducing clock frequencies and voltage levels when the system detects an idle period. When the system subsequently detects an increase in workload, it is desirable for the system to rapidly power up the system modules and increase the clock frequencies and voltage levels to their normal operating levels.
While performing these power-management operations, it is desirable to avoid large latencies or overreactions to the current state of the system. In order to accomplish this, a critical piece of information that must be determined is an estimate of how busy the system will be in the future.
Traditionally, real-time operating systems were designed to make predictions about metrics of running tasks, such as future workloads, periodicity of tasks, or upcoming deadlines. In harmonic or other perfectly periodic real-time systems, optimizing power is straightforward. Such systems have an easily calculated periodic workload, and one simply adjusts the power to accommodate this workload. In the class of real-time systems, earliest-deadline-first (EDF) scheduling is one of the most effective techniques for real-time scheduling. It optimizes throughput, yet does not require fixed workloads, and does not require a periodic relationship between running tasks. Most portable computing systems do not operate in a perfectly periodic environment, which makes EDF an optimal real-time scheduling choice in terms of throughput, but restricts the ability to estimate the power required to meet the deadline of each running task.
Hence, what is needed is a technique for optimizing power management for a portable computing device in an environment with less-predictable workloads.